#ifndef _RECTANGLE_H_
#define _RECTANGLE_H_

typedef  unsigned int u32;

class Rectangle
{
public:
    	Rectangle(const u32  width = 1, const u32  height = 1);
	virtual ~Rectangle();
        u32 getWidth() const;
        u32 getHeight() const;
    	u32 getArea() const;
    	u32 getPerimeter() const;

	void setWidth(const u32  width);
	void setHeight(const u32 height);
private:
	u32  width,height;
};

class Square: public Rectangle
{
public:
	Square(const u32 side = 1);	
	virtual ~Square();
	u32 getSide() const;

        void setSide(const u32 side);
};
#endif
